/**
 * 用户相关的工具函数
 */

/**
 * 格式化用户名显示，为管理员添加标识
 * @param {Object} user - 用户对象
 * @param {string} user.username - 用户名
 * @param {boolean} user.is_staff - 是否为管理员
 * @param {boolean} user.is_superuser - 是否为超级管理员
 * @returns {string} 格式化后的用户名
 */
export function formatUsername(user) {
  if (!user || !user.username) {
    return '-'
  }
  
  const isAdmin = user.is_staff || user.is_superuser
  return isAdmin ? `${user.username} 管` : user.username
}

/**
 * 获取用户管理员类型
 * @param {Object} user - 用户对象
 * @returns {string} 管理员类型：'superuser' | 'staff' | 'normal'
 */
export function getUserAdminType(user) {
  if (!user) return 'normal'
  
  if (user.is_superuser) return 'superuser'
  if (user.is_staff) return 'staff'
  return 'normal'
}

/**
 * 获取用户管理员标识文本
 * @param {Object} user - 用户对象
 * @returns {string} 标识文本：'超管' | '管理员' | ''
 */
export function getUserAdminLabel(user) {
  const type = getUserAdminType(user)
  switch (type) {
    case 'superuser':
      return '超管'
    case 'staff':
      return '管理员'
    default:
      return ''
  }
}

/**
 * 检查用户是否为管理员
 * @param {Object} user - 用户对象
 * @returns {boolean} 是否为管理员
 */
export function isAdmin(user) {
  return !!(user && (user.is_staff || user.is_superuser))
}

/**
 * 获取用户完整姓名
 * @param {Object} user - 用户对象
 * @returns {string} 完整姓名
 */
export function getFullName(user) {
  if (!user) return '-'

  // 优先使用 full_name 字段
  if (user.full_name) {
    return user.full_name
  }

  // 兜底使用用户名
  return user.username || '-'
}
